package com.edu.test;

import com.edu.service.BookService;
import com.edu.service.StudentService;
import com.edu.service.impl.BookServiceImpl;
import com.edu.service.impl.BookServiceProxy;
import com.edu.service.interceptor.MyInterceptor;
import org.junit.Test;
import org.springframework.cglib.proxy.Callback;
import org.springframework.cglib.proxy.Enhancer;

/*
 * @Author:mx
 * @Date:2025/11/10-9:43:51
 */
public class MyTest03 {

    /*
    *   Cglib 动态代理 是创建了一个 继承了 被代理类的 子类的对象
    *       Enhancer.create(被代理对象的类类型,方法拦截器)
    *           方法拦截器 需要去规定 如何 进行增强
    *
    * */
    public static void main(String[] args) {
        StudentService ss = new StudentService();
        System.setProperty("cglib.debugLocation", "./cglib-classes");
        StudentService proxy = (StudentService) Enhancer.create(ss.getClass(), new MyInterceptor(ss));
        proxy.selectStudent();
        System.out.println(proxy.getClass().getName());

    }


}
